package com.caece.ajedrez.Fichas;

import java.util.ArrayList;
import java.util.List;

import com.caece.ajedrez.Movimientos.Movimiento;
import com.caece.ajedrez.Movimientos.Posicion;

public class Peon extends Ficha {

	public Peon(Color color) {
		super(color);
	}

	@Override
	public Integer getCantMovimientos() {
		if(super.isPrimerMov()){
			return 2;
		}else{
			return 1;
		}
	}

	@Override
	public List<Movimiento> getMovimientos(final Posicion actual) {
		Movimiento movs = new Movimiento();
		Movimiento ataque = new Movimiento();
		List<Movimiento> list = new ArrayList<Movimiento>();
		if(getCantMovimientos().equals(1)){
			Posicion pos;
			if(this.isBlanco()){
				pos = new Posicion(actual.getX(), actual.getY()+1);
			}else{
				pos = new Posicion(actual.getX(), actual.getY()-1);
			}
			movs.agregarPosicion(pos, false);
		}else if(getCantMovimientos().equals(2)){
			Posicion pos;
			Posicion pos2;
			if(this.isBlanco()){
				pos = new Posicion(actual.getX(), actual.getY()+1);
				pos2 = new Posicion(actual.getX(), actual.getY()+2);
			}else{
				pos = new Posicion(actual.getX(), actual.getY()-1);
				pos2 = new Posicion(actual.getX(), actual.getY()-2);
			}
			movs.agregarPosicion(pos, false);
			movs.agregarPosicion(pos2, false);
		}
		
		//a donde puede atacar
		Posicion ataca1;
		Posicion ataca2;
		if(this.isBlanco()){
			ataca1 = new Posicion(actual.getX()+1, actual.getY()+1);
			ataca2 = new Posicion(actual.getX()-1, actual.getY()+1);
		}else{
			ataca1 = new Posicion(actual.getX()+1, actual.getY()-1);
			ataca2 = new Posicion(actual.getX()-1, actual.getY()-1);
		}
		
		ataque.agregarPosicion(ataca1, true);
		ataque.agregarPosicion(ataca2, true);
		
		list.add(movs);
		list.add(ataque);
		
		return list;
	}

}
